/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.ove.openmath.exceptions;

/**
 *
 * @author Mr.Sam
 */
import fr.ove.openmath.exceptions.*;

/**
* Specific Control exception to specialize treatment of errors according
* to the symbol that thrown it.
*
* @author © 1999 DIRAT Laurent
* @version 1.0  28/05/99
*/
public class ControlException extends ErrorMessageException {
    /**
    * The constructor.
    * @param symbol The symbol which thrown the instance.
    */
    public ControlException(String symbol) {
        this(symbol, null);
    }

    /**
    * The constructor.
    * @param symbol the symbol which thrown the instance.
    * @param details the details of the exception
    */
    public ControlException(String symbol, Object details) {
        super(symbol, details);

        if (symbol.equals("unhandledSymbol"))
            setErrorMessage("Symbol Unhandled by the Application");
        else if (symbol.equals("unknownSymbol"))
            setErrorMessage("The Symbol does not Exist in the Specified CD");
        else if (symbol.equals("unknownCD"))
            setErrorMessage("The Specified CD is not Handled by the Application");
        else if (symbol.equals("algorithm"))
            setErrorMessage("Operation not or Partially Implemented");
        else if (symbol.equals("limitation"))
            setErrorMessage("Implementation Limitation");
        else if (symbol.equals("unexpected"))
            setErrorMessage("Unexpected Problem");
        else if (symbol.equals("system"))
            setErrorMessage("System Error");
        else if (symbol.equals("terminated"))
            setErrorMessage("Communication Terminted. Server Shutted Down");
        else if (symbol.equals("commandOk"))
            setErrorMessage("Command Successfully Executed");
        else if (symbol.equals("encodingError"))
            setErrorMessage("Lexical and/or Syntactic Error Detected");
        else if (symbol.equals("semanticError"))
            setErrorMessage("Semantic Error Detected");
    }
}

